package com.rshang.rsdp.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.rshang.rsdp.bean.DataGrid;
import com.rshang.rsdp.bean.Response;
import com.rshang.rsdp.entity.TbDictory;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;

/**
 * <p>
 * 数据字典信息表 服务类
 * </p>
 *
 * @author zhangjun
 * @since 2017-08-11
 */
public interface ITbDictoryService extends IService<TbDictory> {

    /**
     * 数据字典分页查询
     *
     * @param page    分页对象
     * @param request HttpServletRequest对象
     *
     * @return DataGrid
     */
    public DataGrid getDicPageList(Page<HashMap> page, HttpServletRequest request);

    /**
     * 获取有效数据字典分类
     *
     * @return List<TbRole>
     */
    public List<TbDictory> getDmFl();

    /**
     * 校验代码
     *
     * @param request HttpServletRequest对象
     *
     * @return Response
     */
    public Response checkDmfl(HttpServletRequest request);


    /**
     * 数据字典新增保存方法
     *
     * @param request HttpServletRequest对象
     * @param czr     操作人
     *
     * @return Response
     */
    public Response addSave(HttpServletRequest request, String czr);


    /**
     * 数据字典编辑保存方法
     *
     * @param request HttpServletRequest对象
     * @param czr     操作人
     *
     * @return Response
     */
    public Response editSave(HttpServletRequest request, String czr);

    /**
     * 删除数据字典保存方法
     *
     * @param request HttpServletRequest对象
     * @param czr     操作人
     *
     * @return Response
     */
    public Response deleteSave(HttpServletRequest request, String czr);

    /**
     * 根据id获取数据字典信息
     *
     * @param request HttpServletRequest对象
     *
     * @return TbDictory
     */
    public TbDictory get(HttpServletRequest request);

    /**
     * 根据代码分类获取数据字典列表
     *
     * @param dicFl 代码分类
     *
     * @return List<TbDictory>
     */
    public List<TbDictory> getDicByFl(String dicFl);

    /**
     * 根据数据字典分类获取代码
     *
     * @param fl 数据字典分类
     *
     * @return List<HashMap>
     */
    public List<HashMap> getDicListByFl(String fl);

    /**
     * excel模板导入
     *
     * @param file 模板文件
     * @param czr  操作人
     *
     * @return Response
     */
    public Response importSave(MultipartFile file, String czr);
}
